# 1. 数字类型
# 整数(int)：没有小数部分的数字，可正可负
age = 25  # 用于表示年龄、数量等整数场景
temperature = -5  # 可表示负数（如温度）

# 浮点数(float)：带小数部分的数字
height = 1.75  # 用于表示身高、体重等需要精确到小数的场景
pi = 3.14159  # 用于数学计算中的无理数

# 复数(complex)：由实部和虚部组成，虚部以j/J结尾
complex_num1 = 3 + 4j  # 定义复数
complex_num2 = 5j  # 纯虚数
# 复数常用于科学计算、信号处理等领域

# 2. 字符串(str)：由字符组成的序列，用单引号或双引号包裹
name = "Alice"  # 表示姓名
message = 'Hello, World!'  # 表示文本信息
multi_line = """这是一个
多行字符串"""  # 用于表示多行文本

# 3. 布尔值(bool)：表示真或假，只有True和False两个值
is_student = True  # 表示是否为学生
has_finished = False  # 表示是否完成

# 4. 组合数据类型
# 列表(list)：有序、可变的元素集合，用方括号表示
fruits = ["apple", "banana", "cherry"]  # 存储多个同类元素
numbers = [1, 2, 3, 4, 5]  # 可存储数字
mixed_list = [1, "hello", True]  # 也可存储不同类型元素
# 列表常用于需要动态增删改元素的场景

# 元组(tuple)：有序、不可变的元素集合，用圆括号表示
point = (10, 20)  # 表示坐标点（不可修改）
person_info = ("Bob", 30, "Male")  # 存储不可变的信息组合
# 元组适合存储一旦定义就不希望被修改的数据

# 字典(dict)：键值对集合，用花括号表示，键值对用冒号分隔
person = {
    "name": "Charlie",
    "age": 35,
    "is_student": False
}  # 存储具有关联关系的数据
# 字典常用于存储对象的属性信息，便于通过键快速查找值

# 集合(set)：无序、不重复的元素集合，用花括号表示
unique_numbers = {1, 2, 3, 4, 5}  # 存储不重复的数字
fruits_set = {"apple", "banana", "apple"}  # 自动去重
# 集合适合用于去重操作和集合运算（如交集、并集）

# 演示数据类型的使用
print("数字类型示例：")
print(f"年龄：{age}，类型：{type(age)}")
print(f"身高：{height}，类型：{type(height)}")
print(f"复数运算：{complex_num1} + {complex_num2} = {complex_num1 + complex_num2}")

print("\n字符串示例：")
print(f"姓名：{name}，问候：{message}")
print(f"多行字符串：{multi_line}")

print("\n布尔值示例：")
print(f"是否为学生：{is_student}，是否完成：{has_finished}")
print(f"逻辑运算：{is_student and not has_finished}")

print("\n列表示例：")
print(f"水果列表：{fruits}")
fruits.append("orange")  # 列表可修改
print(f"添加后的水果列表：{fruits}")

print("\n元组示例：")
print(f"坐标点：{point}，x坐标：{point[0]}，y坐标：{point[1]}")

print("\n字典示例：")
print(f"人员信息：{person}")
print(f"姓名：{person['name']}，年龄：{person['age']}")

print("\n集合示例：")
print(f"去重后的水果：{fruits_set}")
print(f"集合交集：{unique_numbers & {3, 4, 6}}")